//package it.rossignoli.enrico.app.Tesi;
//
//import java.util.ArrayList;
//import java.util.List;
//
//import android.app.Activity;
//import android.app.ListActivity;
//import android.content.ComponentName;
//import android.content.Context;
//import android.content.Intent;
//import android.content.ServiceConnection;
//import android.content.SharedPreferences;
//import android.os.Bundle;
//import android.os.IBinder;
//import android.os.RemoteException;
//import android.sax.StartElementListener;
//import android.util.Log;
//import android.view.ContextMenu;
//import android.view.Menu;
//import android.view.MenuItem;
//import android.view.View;
//import android.view.ContextMenu.ContextMenuInfo;
//import android.view.View.OnClickListener;
//import android.widget.AdapterView;
//import android.widget.ArrayAdapter;
//import android.widget.Button;
//import android.widget.EditText;
//import android.widget.ListView;
//import android.widget.TextView;
//import android.widget.Toast;
//import android.widget.ToggleButton;
//import android.widget.AdapterView.OnItemClickListener;
//
//import de.dfki.ccaal.gestures.IGestureRecognitionListener;
//import de.dfki.ccaal.gestures.IGestureRecognitionService;
//import de.dfki.ccaal.gestures.classifier.Distribution;
//
//
//public class Training extends Activity 
//{
//
//	
//	IGestureRecognitionService recognitionService;
//	String activeTrainingSet;
//	String ActiveTrainGestures;
//	String GestureFind;
//	EditText editTextGesto;
//	ListView ListaGesti;
//	
//	private String sMapping;
//	
//	double GestureFindDistance;
//	
//	private ArrayList<String> ItemGesturesList;
//	
//	private static final String LOG_TAG="Training";
//
//	private final ServiceConnection serviceConnection = new ServiceConnection() 
//	{
//
//		
//		public void onServiceConnected(ComponentName className, IBinder service) 
//		{
//			recognitionService = IGestureRecognitionService.Stub.asInterface(service);
//			
//			
//			try
//			{
//				recognitionService.registerListener(IGestureRecognitionListener.Stub.asInterface(gestureListenerStub));
//				String training = getIntent().getStringExtra("trainingSetName").toString();
//				List<String> ItemList;
//				ItemList = recognitionService.getGestureList(training);
//				ArrayAdapter<String> adapter=new MyArrayAdapter(Training.this, ItemList);
//		    	ListaGesti.setAdapter(adapter);
//				adapter.notifyDataSetChanged();
//			} catch (RemoteException e) 
//			{
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//				Log.i("ActivityDemo", "Errore " + e);
//			}
//
//			
////			try 
////			{
////				//Faccio partire in modalita riconoscimento e attivo pure il recorder
////				//Registro il listener in maniera tale da poter recepire le informazioni inviate dal servizio sfruttando i metodi dell interfaccia listener
////				//Posso quindi usare i metodi implementati nello stub di questa activity
////				recognitionService.registerListener(IGestureRecognitionListener.Stub.asInterface(gestureListenerStub));
////			} 
////			catch (RemoteException e1) 
////			{
////				// TODO Auto-generated catch block
////				e1.printStackTrace();
////			}
//		}
//
//		
//		public void onServiceDisconnected(ComponentName className) 
//		{
//			recognitionService = null;
//		}
//	};
//
//	IBinder gestureListenerStub = new IGestureRecognitionListener.Stub() 
//	{
//
//		
//		public void onGestureLearned(String gestureName) throws RemoteException 
//		{
//			System.err.println("Gesture "+ gestureName+" learned");
//		}
//
//		
//		public void onTrainingSetDeleted(String trainingSet) throws RemoteException 
//		{
//			System.err.println(String.format("Training set %s deleted", trainingSet));
//		}
//
//		
//		public void onGestureRecognized(final Distribution distribution) throws RemoteException 
//		{
//			System.err.println(String.format("Trovato %s, dist: %d", distribution.getBestMatch().toString(),distribution.getBestDistance()));
//		}
//
//	};
//	
//	
//	@Override
//	protected void onCreate(Bundle savedInstanceState) 
//	{
//		super.onCreate(savedInstanceState);
//		setContentView(R.layout.training);
//		String training = getIntent().getStringExtra("trainingSetName").toString();
//		Log.i("ActivityDemo", "Richiamato Training con set: " + training);
//		
//		editTextGesto = (EditText) findViewById(R.id.TrainOnGesture);
//
//		
//		final ToggleButton StartStopTrain = (ToggleButton)findViewById(R.id.TrainONFF);
//		ListaGesti = (ListView)findViewById(R.id.listGesture);
//		
//		ItemGesturesList=new ArrayList<String>();
//		
//        SharedPreferences pref=getSharedPreferences("PREFERENCES_SMARTOBJECT", Context.MODE_PRIVATE);
//		sMapping=pref.getString("COMPLETEMAPPING", null);
//		
//		for(String s:sMapping.split(";"))
//		{
//			String ss[]=s.split("=");
//			if(SibIntentService.DEBUG) Log.i(LOG_TAG,ss[0]+"......."+ss[1]);
//			String sss[]=ss[0].split("#");
//			if(SibIntentService.DEBUG) Log.i(LOG_TAG,sss[0]+"......."+sss[1]);
//			ItemGesturesList.add(sss[1]);
//		}
//		
//		StartStopTrain.setTextOff("Training Mode On");
//		StartStopTrain.setTextOn("Training Mode Off");
//
//		
//		StartStopTrain.setOnClickListener(new OnClickListener() 
//		{
//		    public void onClick(View v) 
//		    {
//		        // Perform action on clicks
//		        if (StartStopTrain.isChecked()) 
//		        {
//		        	try 
//		        	{
//		        		ActiveTrainGestures = editTextGesto.getText().toString();
//		        		if(!ActiveTrainGestures.equals(""))
//		        		{
//		        			String training = getIntent().getStringExtra("trainingSetName").toString();
//							recognitionService.startLearnMode(training, ActiveTrainGestures);
//							Toast.makeText(Training.this, "Esegui gesto", Toast.LENGTH_SHORT).show();
//		        		}
//		        		else
//		        		{
//		        			Toast.makeText(Training.this, "Inserire il gesto", Toast.LENGTH_SHORT).show();
//		        			StartStopTrain.setChecked(false);
//		        		}
//		        	} catch (RemoteException e) 
//					{
//						// TODO Auto-generated catch block
//						e.printStackTrace();
//					}
//		            
//		        } 
//		        else 
//		        {
//		        	try 
//		        	{
//						recognitionService.stopLearnMode();
//					} catch (RemoteException e) 
//					{
//						// TODO Auto-generated catch block
//						e.printStackTrace();
//					}
//		        	Toast.makeText(Training.this, "Fine training", Toast.LENGTH_SHORT).show();
//		        }
//		    }
//		});
//	}
//	
//	@Override
//	protected void onRestart() 
//	{
//		super.onRestart();
//		Log.i("ActivityDemo", "Richiamato onRestart()");
//	}
//	
//	@Override
//	protected void onStart() 
//	{
//		super.onStart();
//		Log.i("ActivityDemo", "Richiamato onStart()");
//	}
//	
//	@Override
//	protected void onResume() 
//	{
//		super.onResume();
//		Log.i("ActivityDemo", "Richiamato onResume()");
//		//Connetto al servizio tramite la service connection
//		Intent bindIntent = new Intent("de.dfki.ccaal.gestures.GESTURE_RECOGNIZER");
//		bindService(bindIntent, serviceConnection, Context.BIND_AUTO_CREATE);
//		
//		
//		
//		
//		try 
//		{
//			List<String> item = recognitionService.getGestureList("default");
//			ArrayAdapter<String> adapter=new MyArrayAdapter(Training.this, item);
//	    	ListaGesti.setAdapter(adapter);
//			adapter.notifyDataSetChanged();
//			OnItemClickListener listener = new OnItemClickListener() 
//			{
//					public void onItemClick(AdapterView<?> parent, View view, int position,long id) 
//					{
//						//Riempi la casella di testo con il gesto che si vuole insegnare
//						String select=(String) parent.getItemAtPosition(position);
//						editTextGesto.setText(select);
//					}
//			};
//			
//			ListaGesti.setOnItemClickListener(listener);
//		} 
//		catch (RemoteException e) 
//		{
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//
//		ArrayAdapter<String> adapter=new MyArrayAdapter(Training.this, ItemGesturesList);
//    	ListaGesti.setAdapter(adapter);
//		adapter.notifyDataSetChanged();
//		OnItemClickListener listener = new OnItemClickListener() 
//		{
//				public void onItemClick(AdapterView<?> parent, View view, int position,long id) 
//				{
//					//Riempi la casella di testo con il gesto che si vuole insegnare
//					String select=(String) parent.getItemAtPosition(position);
//					editTextGesto.setText(select);
//				}
//		};
//		
//		ListaGesti.setOnItemClickListener(listener);
//
//
//
//		super.onResume();
//	}
//	
//	@Override
//	protected void onPause() 
//	{
//		super.onPause();
//		Log.i("ActivityDemo", "Richiamato onPause()");
//		try 
//		{
//			recognitionService.unregisterListener(IGestureRecognitionListener.Stub.asInterface(gestureListenerStub));
//		} catch (RemoteException e) 
//		{
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		recognitionService = null;
//		unbindService(serviceConnection);
//	}
//	
//	@Override
//	protected void onStop() 
//	{
//		super.onStop();
//		Log.i("ActivityDemo", "Richiamato onStop()");
//	}
//	
//	@Override
//	protected void onDestroy() 
//	{
//		super.onDestroy();
//		Log.i("ActivityDemo", "Richiamato onDestroy()");
//	}
//
//}